<?php

namespace App\Models\CatchConf;

use App\Models\BaseModel;

class DouYinCatchModel extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'douyin_catch';

    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'goods_code',
        'name',
        'identity',
        'contact',
        'province',
        'city',
        'area',
        'address',
        'dist_orderno',
        'dist_id',
        'dist_name',
        'author_id',
        'author_name',
        'shop_id',
        'status',
        'status_desc',
        'three_msg',
        'created_at',
        'create_at',
        'updated_at',
        'package_name',
        'skumark_remark',
        'remark',
        'douyin_status_name',
        'is_sign',
        'remarks',
        'douyin_id',
        'douyin_name',
        'dou_status',
        'dou_status_desc',
        'money'

    );

    // public $timestamps = false;

    public function aliasRable($alias)
    {
        return $this->setTable($alias);
    }

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );

    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }

    protected function serializeDate(\DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }

    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        /**
         * 'goods_code',
         *'name',
         *'identity',
         *'contact',
         *'province',
         *'city',
         *'area',
         *'address',
         *'dist_orderno',
         *'dist_id',
         *'dist_name',
         *'author_id',
         *'author_name',
         *'shop_id',
         *'status',
         *'status_desc',
         *'three_msg',
         *'created_at',
         *'updated_at',
         *'remark',
         */
        $table = "CREATE TABLE IF NOT EXISTS  $tablename (
            `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
            `goods_code` varchar(255) DEFAULT '' COMMENT '商品编码',
            `name` varchar(255) DEFAULT '' COMMENT '用户名称',
            `identity` varchar(255) DEFAULT '' COMMENT '省份证信息',
            `contact` varchar(255) DEFAULT '' COMMENT '联系方式',
            `province` varchar(255) DEFAULT '' COMMENT '省',
            `city` varchar(255) DEFAULT '' COMMENT '市',
            `area` varchar(255) DEFAULT '' COMMENT '区',
            `address` varchar(255) DEFAULT '' COMMENT '详细地址',
            `dist_orderno` varchar(255) DEFAULT '' COMMENT '订单号',
            `dist_id` varchar(255) DEFAULT '' COMMENT '对应抖音店铺的id',
            `dist_name` varchar(255) DEFAULT '' COMMENT '对应店铺的名称',
            `author_id` varchar(255) DEFAULT '' COMMENT '房间id',
            `author_name` varchar(255) DEFAULT '' COMMENT '达人名称',
            `status` varchar(255) DEFAULT '' COMMENT '订单状态',
            `status_desc` varchar(255) DEFAULT '' COMMENT '状态解释',
            `three_msg` varchar(255) DEFAULT '' COMMENT '提交返回的信息',
            `shop_id` int(11) DEFAULT '0' COMMENT '本店铺店铺id',
            `created_at` datetime DEFAULT NULL COMMENT '创建时间',
            `updated_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
            `remark` varchar(500) DEFAULT NULL COMMENT '备注',
            PRIMARY KEY (`id`),
            KEY `shop_id` (`shop_id`),
            KEY `dist_orderno` (`dist_orderno`)
            ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='抖音抓取信息表';";
        return $table;
    }

    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        $array = [
            'package_name' => "varchar(200) DEFAULT NULL COMMENT '套餐名称'",
            'douyin_status_name' => "varchar(200) DEFAULT '支付中' COMMENT '抖店上订单状态'",
            'create_at' => "datetime DEFAULT CURRENT_TIMESTAMP COMMENT '本地订单创建时间'",
            'is_delive' => "tinyint(1) DEFAULT '0' COMMENT '是否发货 0未操作 1 已审核 2 已发货'",
            'sell_id' => "int(11) DEFAULT '0' COMMENT '分销员id'",
            'sell_name' => "varchar(200) DEFAULT null COMMENT '分销员名称'",
            // 'douyin_id' => "int(11) DEFAULT '0' COMMENT '抖音对应表的id'",
            // 'douyin_name' => "varchar(200) DEFAULT '0' COMMENT '抖音对应的名称'",
            // 'is_sign' => "tinyint(1) DEFAULT '0' COMMENT '标记 0未标记 1:已标记 2:取消标记'",
            // 'remarks' => "varchar(255) DEFAULT '0' COMMENT '员工备注'",
            'dou_status' => "varchar(255) DEFAULT '0' COMMENT '抖音的订单状态'",
            'dou_status_desc' => "varchar(255) DEFAULT '0' COMMENT '抖音的订单状态详解'",
            'money' => "varchar(255) DEFAULT '0' COMMENT '支付金额'",
        ];
        return $array;
    }

    // 关联 role表
    public function userToRole($role)
    {
        // return $this->hasMany(Role::className(),);
    }
    //订单的状态
    // 提交中 审核中 已发货 已签收 已激活 异常单  失败单
    public function orderStatus()
    {
        return [
            0 => '提交中',
            1 => '提交上游',
            // 10 => '审核中',
            11 => '审核成功',
            12 => '审核失败',
            20 => '已发货',
            // 30 => '已签收',
            // 40 => '已激活',
            50 => '异常单',
            51 => '订单已关闭',
            60 => '失败单'
        ];
    }

    public function getOrderStatusDesc($key)
    {
        $allStatus = $this->orderStatus();
        return $allStatus[$key];
    }

    public function setDStatus()
    {
        return [
            1 => '待确认/待支付',
            // 10 => '审核中',
            105 => ' 已支付',
            2 => '备货中',
            101 => '部分发货',
            // 30 => '已签收',
            // 40 => '已激活',
            3 => '已发货（全部发货）',
            4 => '已取消',
            5 => ' 已完成（已收货)'
        ];
    }

    public function getDStatusDesc($status)
    {
        $allStatus = $this->setDStatus();
        if (!empty($allStatus[$status])) {
            return $allStatus[$status];
        }
        return '未知';
    }

    public function getSourceType()
    {
        return [
            1 => '抖音',
            2 => '导入',
            3 => 'H5',
            4 => '百度',
            5 => 'Api',
        ];
    }

    public function getOrderSource($key)
    {
        $allStatus = $this->getSourceType();
        return $allStatus[$key];
    }

    public function getIsEdit()
    {
        /**  1+ 用户信息修改 2+ 商品信息修改 3+ 产品信息修改
         */
    }
}
